"""
 语法
    xlrd   pandas
    3.1 安装库
        pip install xlrd
        pip install pandas
        pip install pyexcel-xls -i https://pypi.tuna.tsinghua.edu.cn/simple

    3.2 准备测试数据 csv格式的文件
        1.当csv文件中有中文的时候,需要进行UTF-8转码
        2.CSV文件中的数据类型和python对比
                 csv            python
        布尔值    TRUE/FALSE     True/FALSE
        空值      nan            None

    3.3 pandas的使用: 专门用来处理csv或表格文件数据的
        1.读取文件  pandas.read_csv(文件路径+名称)
            - keep_default_na 默认True,按照csv本身的数据处理方式读取;False,按照原格式读取
            - converters: 指定某一列的数据类型 {'password': int}

"""
import pandas
import os


class OperationData(object):
    def __init__(self, filename):
        base_path = os.path.dirname(os.path.dirname(__file__))  # 项目路径
        data_path = os.path.join(base_path, 'Data')  # 数据路径
        file_path = os.path.join(data_path, filename)  # 文件路径
        # 判断文件名是csv还是Excel
        if filename.split('.')[1] == 'csv':
            self.file = pandas.read_csv(file_path, keep_default_na=False)  # 读取csv文件
        elif filename.split('.')[1] == 'xls' or filename.split('.')[1] =='xlsx':
            self.file = pandas.read_excel(file_path, keep_default_na=False)
        else:
            print("不支持的文件格式")

    def get_values_to_list(self):
        """将文件数据读取成列表嵌套列表格式"""
        return self.file.values.tolist()
        pass

    def get_values_to_dict(self):
        """将文件数据读取成列表嵌套字典格式"""
        return [self.file.loc[i].to_dict() for i in self.file.index.values]
        pass

if __name__ == '__main__':
    file = 'login_data.xls'
    print(OperationData(file).get_values_to_list())
